package com.wicket.okrbff.biz.service.dto.common;


import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * @desc BffBaseBatchDto
 * @使用场景
 */
@Data
public class BffBaseBatchDto implements Serializable {

    /**
     * 批次ID:
     */
    @ApiModelProperty("批次ID")
    private String batchId;

    /**
     * 主体生命周期:
     */
    @ApiModelProperty("主体生命周期")
    private String subjectLifeCycle;

    /**
     * 是否首次批次:
     */
    @ApiModelProperty("是否首次批次")
    private String isFirst;

    /**
     * 操作人就职记录ID:
     */
    @ApiModelProperty("操作人就职记录ID")
    private String operationInductionId;

    /**
     * 操作时间:
     */
    @ApiModelProperty("操作时间")
    private Date operateTime;

    /**
     * 真实姓名:
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 用户昵称:
     */
    @ApiModelProperty("用户昵称")
    private String nickName;
    /**
     * 批次编号:
     */
    @ApiModelProperty("批次编号")
    private String batchNumber;
    /**
     * 批次名称:
     */
    @ApiModelProperty("批次名称")
    private String batchName;
    /**
     * 批次开始时间:
     */
    @ApiModelProperty("批次开始时间")
    private Date batchStartTime;
    /**
     * 批次结束时间:
     */
    @ApiModelProperty("批次结束时间")
    private Date batchEndTime;
/**
     * 个人账号ID 
     */
    @ApiModelProperty("个人账号ID")
    private String	 userId;
/**
     * 归属对象ID 
     */
    @ApiModelProperty("归属对象ID")
    private String	 ascriptionObjectId;

    /**
     * 用途类型编码 ORG:组织架构 STATION_TYPE:岗位类型
     */
    @ApiModelProperty("用途类型编码")
    private String	 purposeTypeCode;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      BffBaseBatchDto that = (BffBaseBatchDto) o;
      return  batchId == that.batchId&&subjectLifeCycle == that.subjectLifeCycle&&isFirst == that.isFirst&&operationInductionId == that.operationInductionId&&operateTime == that.operateTime&&idCardName == that.idCardName&&nickName == that.nickName&&batchNumber == that.batchNumber&&batchName == that.batchName&&batchStartTime == that.batchStartTime&&batchEndTime == that.batchEndTime&&userId == that.userId&&ascriptionObjectId == that.ascriptionObjectId&&purposeTypeCode == that.purposeTypeCode;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), batchId,subjectLifeCycle,isFirst,operationInductionId,operateTime,idCardName,nickName,batchNumber,batchName,batchStartTime,batchEndTime,userId,ascriptionObjectId,purposeTypeCode);
    }

}
